<script>
export default {
	onLoad() {
		// 国际化，设置当前语言
		if (this.vuex_locale){
			this.$i18n.locale = this.vuex_locale;
			this.$u.api.lang({lang: this.vuex_locale});
		}
		// 设置底部导航栏角标
		uni.setTabBarBadge({
			index: 0,
			text: '3'
		});
		// 移除底部导航栏角标
		uni.removeTabBarBadge({
			index: 0
		});
		// 同步获取系统信息
		uni.getSystemInfoSync({
			success: (e) => {
				this.setSystemInfo(e);
				this.windowWidth = e.windowWidth;
			},
		});
		// 同步获取启动参数
		uni.getLaunchOptionsSync({
			success: (e) => {
				this.setLaunchInfo(e);
			},
		});
	},
	// 监听页面不存在事件
	onPageNotFound: function(e) {
		console.log('尝试访问的页面不存在:', e.path);
		console.log('query:' + e.query + ' isEntryPage' + e.isEntryPage);
		
		// 跳转到错误页面 
		uni.redirectTo({
			// 错误页面
			// url: '/pages/errorPage/404'
		});
		
		// // 显示弹窗
		// uni.showToast({  
		// 	title: '页面不存在',  
		// 	icon: 'none',
		// 	mask: true,    // 是否显示透明蒙层
		// 	duration: 3000, // 提示的延迟时间，单位毫秒
		// 	position: 'center' // 纯文本轻提示显示位置
		// }); 
	},
	// 监听全局错误
	onError: function(error) {
		console.error('捕获到全局错误：', error);
			
		// 提示错误弹窗
		uni.showModal({
			title: '发生错误',  
			content: '应用发生未知错误，请稍后重试或联系开发者。',  
			showCancel: false  
		});
		
		// 根据错误类型进行不同的处理  
		if (error.message.includes('网络请求失败')) {  
			// 处理网络请求失败的错误  
			uni.showToast({  
				title: '网络请求失败，请检查网络连接',  
				icon: 'none'  
			});  
		}  
	},
	methods: {
		/**
		 * @description 存储当前设备信息
		 * @param deviceId      设备id
		 * @param deviceBrand   设备品牌  
		 * @param deviceModel   设备型号  
		 * @param deviceType    设备类型
		 * @param windowWidth   可使用窗口宽度
		 */	
		setSystemInfo({ deviceId, deviceBrand, deviceModel, deviceType, windowWidth}) {
			uni.setStorageSync("deviceId", deviceId);
			uni.setStorageSync("deviceBrand", deviceBrand);
			uni.setStorageSync("deviceModel", deviceModel);
			uni.setStorageSync("deviceType", deviceType);
			uni.setStorageSync("windowWidth", windowWidth);
		},
		/**
		 * @description 存储当前启动参数
		 * @param path         启动路径
		 * @param query        启动时的query参数
		 * @param referrerInfo 来源信息
		 * @param launcher     应用启动来源
		 */
		setLaunchInfo({ path, query, referrerInfo, launcher}) {
			uni.setStorageSync("path", path);
			uni.setStorageSync("query", query);
			uni.setStorageSync("referrerInfo", referrerInfo);
			uni.setStorageSync("launcher", launcher);
		}
	},
	// 全局变量
	globalData: {  

	}
}
</script>

<style>
@import url("~@/static/iconfont/iconfont.css");
</style>

<style lang="scss">
@import "uview-ui/index.scss";
@import "pages/common/aidex.scss";
@import '@/uni_modules/uv-ui-tools/index.scss';
</style>